/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Service;

import DB.FichaSicologa;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
import org.hibernate.Criteria;
import DB.HibernateUtil;

/**
 *
 * @author Jacqueline
 */
@WebService()
public class FichaSicologaWS {
    @WebMethod(operationName = "agregarFichaSicologa")
    public Long agregarFichaSicologa(@WebParam(name = "paciente") String paciente,
            @WebParam(name = "profesional") String profesional,
            @WebParam(name = "fechaPrimeraConsulta") String fechaPrimeraConsulta,
            @WebParam(name = "diagnostico") String diagnostico,
            @WebParam(name = "activo") boolean activo) {

        DB.FichaSicologa ficha = new DB.FichaSicologa();
        ficha.setPaciente(paciente);
        ficha.setProfesional(profesional);
        ficha.setDiagnostico(diagnostico);
        ficha.setFechaPrimeraConsulta(fechaPrimeraConsulta);
        ficha.setActivo(activo);
        ControladorDeObjetos.saveObject(ficha);
        return ficha.getId();
    }
    /**
     * Web service operation
     */
    @WebMethod(operationName = "listarFichasSicologa")
    public List<FichaSicologa> listarFichasSociloga() {
        return ControladorDeObjetos.getAllObjectByClassType(FichaSicologa.class);
    }
    /**
     * Web service operation
     */
    @WebMethod(operationName = "eliminarFichaSicologa")
    public boolean eliminarFichaSicologa(@WebParam(name = "Id") Long Id) {
       FichaSicologa ficha = (FichaSicologa) ControladorDeObjetos.loadObjectByLongId(Id, FichaSicologa.class);
       ControladorDeObjetos.deleteObject(ficha);
       return true;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "cargarFichaSicologa")
    public Object cargarFichaSicologa(@WebParam(name = "Id") Long Id){
        return ControladorDeObjetos.loadObjectByLongId(Id, FichaSicologa.class);
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "modificarFichaSicologa")
    public boolean modificarFichaSicologa(@WebParam(name = "Id") Long Id,
            @WebParam(name = "paciente") String paciente,
            @WebParam(name = "profesional") String profesional,
            @WebParam(name = "fechaPrimeraConsulta") String fechaPrimeraConsulta,
            @WebParam(name = "diagnostico") String diagnostico,
            @WebParam(name = "activo") boolean activo) {

        FichaSicologa ficha = (FichaSicologa) ControladorDeObjetos.loadObjectByLongId(Id,FichaSicologa.class);
        ficha.setPaciente(paciente);
        ficha.setProfesional(profesional);
        ficha.setDiagnostico(diagnostico);
        ficha.setFechaPrimeraConsulta(fechaPrimeraConsulta);
        ficha.setActivo(activo);
        return ControladorDeObjetos.updateObject(ficha);
    }

    @WebMethod(operationName = "modificarFichaSico")
    public boolean modificarFichaSico(@WebParam(name = "FichaSicologa")FichaSicologa fichaClinica) {
        return ControladorDeObjetos.updateObject(fichaClinica);
    }

    @WebMethod(operationName = "filtrarFichasSicologa")
    public List<FichaSicologa> filtrarFichasSicologa(@WebParam(name = "buscar") String buscar) {
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        Transaction trans = s.beginTransaction();
        Criteria c = s.createCriteria(FichaSicologa.class).add(Restrictions.or(Restrictions.or(Restrictions.ilike("paciente", "%" + buscar + "%"),
                Restrictions.ilike("fechaPrimeraConsulta", "%" + buscar + "%")),
                (Restrictions.ilike("diagnostico", "%" + buscar + "%"))));
        List l = c.list();
        s.close();
        return l;
    }
}
